package request;


import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/request")
public class RequestStudyServlet extends HttpServlet {

    //即支持doGet，也支持doPost
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req,resp);//逻辑一样，就调用doGet就好
    }

    //访问路径 request?username=abc&password=123
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("请求协议名：" + req.getProtocol());
        System.out.println("请求方法：" + req.getMethod());
        System.out.println("上下文路径/应用名：" + req.getContextPath());
        System.out.println("资源路径/servletPath：" + req.getServletPath());
        System.out.println("请求头中键为Host的值" + req.getHeader("Host"));

        //重点:http请求数据。存放的位置：1.url queryString 2.body（多种类型）
        //通过键获取值：1.queryString 2.表单格式，body 3.form-data格式简单的类型
        // 1.queryString 访问路径 request?uesrname=abc&password=123
        // 注意：HTTP请求时候，url会进行编码，获取queryString的中文格式，空格，特殊字符，就需要解释
        //2.表单格式：body中的数据，格式和query String一样 （注意，这里是Post提交，所以要重写Post方法）
        // 注意：body中的内容也是有编码格式的，需要设置一下才能正常显示。
        req.setCharacterEncoding("utf-8");//设置body解析的编码格式（表单提交的时候这里会有乱码）
        System.out.println("username:" + req.getParameter("username"));
        System.out.println("password:" + req.getParameter("password"));

        //响应给客户端的内容
        resp.getWriter().println("请求信息已获取，在idea控制台查看");
    }
}
